package com.ai.wxy.spring.jpa.user.service;

import com.ai.wxy.spring.jpa.user.dto.RoleDTO;
import com.ai.wxy.spring.jpa.user.dto.UserDTO;
import com.ai.wxy.spring.jpa.user.dto.UserRoleDTO;
import com.ai.wxy.spring.service.api.BaseService;
import com.ai.wxy.spring.service.api.dto.DefaultServiceParam;
import com.ai.wxy.spring.service.api.dto.DefaultServiceResult;

/**
 * 用户角色
 *
 * @author 石头
 * @Date 2019/11/20
 * @Version 1.0
 **/
public interface IUserRoleService extends BaseService {
    /**
     * 添加新用户
     * @param userDTO
     * @return
     */
    DefaultServiceResult<Long> addUser(UserDTO userDTO);
    /**
     * 更新用户
     * @param userDTO
     * @return
     */
    DefaultServiceResult<UserDTO> updUser(UserDTO userDTO);
    /**
     * 删除用户
     * @param userId
     * @return
     */
    DefaultServiceResult<Boolean> delUser(DefaultServiceParam<Long> userId);
    /**
     * 添加角色
     * @param roleDTO
     * @return
     */
    DefaultServiceResult<Long> addRole(RoleDTO roleDTO);

    /**
     * 更新角色
     * @param roleDTO
     * @return
     */
    DefaultServiceResult<RoleDTO> updRole(RoleDTO roleDTO);

    /**
     * 删除角色
     * @param roleId
     * @return
     */
    DefaultServiceResult<Boolean> delRole(DefaultServiceParam<Long> roleId);

    /**
     * 添加用户角色信息
     * @param userRoleDTO
     * @return
     */
    DefaultServiceResult<Boolean> addUserRoles(UserRoleDTO userRoleDTO);

    /**
     * 更新用户角色信息
     * @param userRoleDTO
     * @return
     */
    DefaultServiceResult<Boolean> updUserRoles(UserRoleDTO userRoleDTO);
}
